package com.docmgmt.mvp.ragflow.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import java.util.List;

/**
 * 创建 Chat Assistant 请求 DTO
 * 
 * POST /api/v1/chats
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreateChatAssistantRequest {

    /**
     * Chat Assistant名称
     */
    @Size(min = 1, max = 255, message = "名称长度必须在1-255之间")
    private String name;

    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 描述
     */
    private String description;

    /**
     * 关联的知识库ID列表（必需）
     */
    @JsonProperty("dataset_ids")
    @NotEmpty(message = "dataset_ids不能为空")
    private List<String> datasetIds;

    /**
     * LLM模型ID（格式：model_name@provider）
     * 例如：qwen-plus@Tongyi-Qianwen
     */
    @JsonProperty("llm_id")
    private String llmId;

    /**
     * LLM设置
     */
    @JsonProperty("llm_setting")
    @Valid
    private LLMSettingDTO llmSetting;

    /**
     * Prompt配置
     */
    @JsonProperty("prompt_config")
    @Valid
    private PromptConfigDTO promptConfig;
}

